class_name PokerBullet
extends Bullet


## 总共有红心，方块，黑桃，梅花四种花色 [br]
## 每次攻击随机一种花色。当连续3次相同花色，下次攻击会触发对应的效果[br]
## 效果: [br]
## 红心：回复自身10%的最大生命值 [br]
## 方块：此次攻击发出的子弹无视敌方30%的防御力 [br]
## 黑桃：此次攻击发出的子弹的伤害提高50% [br]
## 梅花：命中敌人后，造成小范围的爆炸效果，对敌人造成此次伤害的20%的伤害 [br]


enum PokerSuit {
    NONE,
    SPADE,
    CLUB,
    HEART,
    DIAMOND,
}

var curr_suit: PokerSuit:
    set(value):
        curr_suit = value

        if curr_suit == PokerSuit.NONE: return
        sprite.frame = int(curr_suit) - 1


func apply_suit_effect() -> void:
    var damage_info := damage_sender.damage_info
    match curr_suit:
        PokerSuit.HEART: _apply_poker_suit_heart_effect(damage_info)
        PokerSuit.DIAMOND: _apply_poker_suit_diamond_effect(damage_info)
        PokerSuit.SPADE: _apply_poker_suit_spade_effect(damage_info)
        PokerSuit.CLUB: _apply_poker_suit_club_effect(damage_info)
        _: return


## 红心：回复自身10%的最大生命值
func _apply_poker_suit_heart_effect(damage_info: DamageInfo) -> void:
    # Global.get_player().data.health.add_modifier()
    pass


## 方块：此次攻击发出的子弹无视敌方30%的防御力
func _apply_poker_suit_diamond_effect(damage_info: DamageInfo) -> void:
    pass


## 黑桃：此次攻击发出的子弹的伤害提高50%
func _apply_poker_suit_spade_effect(damage_info: DamageInfo) -> void:
    pass


## 梅花：命中敌人后，造成小范围的爆炸效果，对敌人造成此次伤害的20%的伤害
func _apply_poker_suit_club_effect(damage_info: DamageInfo) -> void:
    pass
